package com.mbc.service;


import com.github.pagehelper.PageInfo;
import com.mbc.dto.ConditionDTO;
import com.mbc.dto.MbcBlackListDTO;
import com.mbc.dto.MbcBlackListInfoDTO;
import com.mbc.pojo.MbcBlackList;
import com.mbc.pojo.MbcBlackListInfo;
import com.mbc.vo.MbcBlackListInfoAndMbcBlackListVO;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 黑名单表 服务类
 * </p>
 *
 * @author suimeng
 * @since 2024-04-15
 */
public interface BlackListService {


    /**
     * 插入黑名单用户
     *
     * @param userId       用户 ID
     * @param mbcBlackListDTO MBC黑名单
     * @return boolean
     */
    boolean insertBlackUser(Integer userId, MbcBlackListDTO mbcBlackListDTO);

    /**
     * 新增举报人详细信息
     *
     * @param userId           用户 ID
     * @param mbcBlackListInfoDTO MBC黑名单信息
     * @return boolean
     */
    boolean insertInfoBlackUser(Integer userId, MbcBlackListInfoDTO mbcBlackListInfoDTO);


    /**
     *分页查询全部黑名单用户
     *
     * @param size   大小
     * @param page   页
     * @return boolean
     */
    PageInfo<MbcBlackListInfoAndMbcBlackListVO> getByBlackUser(Integer size, Integer page);


    /**
     * 条件查询根据查询全部黑名单信息
     *
     * @param size         大小
     * @param page         页
     * @param conditionDTO 条件 DTO
     * @return {@link List}<{@link MbcBlackListInfoAndMbcBlackListVO}>
     */
    ArrayList<MbcBlackListInfoAndMbcBlackListVO> getByConditionUserIdBlackUser(ConditionDTO conditionDTO, Integer size, Integer page);

    /**
     * 更新黑名单信息
     *
     * @param userId          用户 ID
     * @param mbcBlackListDTO MBC 黑名单 DTO
     * @return boolean
     */
    boolean updateBlackUser(Integer userId, MbcBlackListDTO mbcBlackListDTO);

    /**
     * 更新被举报人信息
     *
     * @param mbcBlackListInfoDTO MBC黑名单信息DTO
     * @param reasonsId           被举报人 ID
     * @return boolean
     */
    boolean updateBlackInfoUser(Integer reasonsId, MbcBlackListInfoDTO mbcBlackListInfoDTO);
}
